stop inlining config into pyo3-build-config; generate directly in pyo3-ffi#5862
stop inlining config into pyo3-build-config; generate directly in pyo3-ffi#5862davidhewitt wants to merge 17 commits intoPyO3:mainfrom
pyo3-build-config; generate directly in pyo3-ffi#5862Conversation
Merging this PR will improve performance by 12.98%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ⚡ | bench_pyclass_create |
4.6 µs | 4.1 µs | +12.98% |
Comparing davidhewitt:build-config-no-resolve (cf848fb) with main (9c734a1)
Footnotes
-
1 benchmark was skipped, so the baseline result was used instead. If it was deleted from the codebase, click here and archive it to remove it from the performance reports. ↩
|
This is ready for review / merge. I think overall this makes the build configuration easier to reason about as the full configuration pipeline is run once in pyo3-ffi's As well as the simplification, this improves CI performance slightly because we reduce the number of rebuilds of It is now possible for 3.8 failure is unrelated in #6009 |
This is an experiment to simplify
pyo3-build-configto not have abuild.rsitself, and letpyo3-build-configdo the hard work. Instead, callers ofpyo3-build-configAPIs must themselves have a direct dependency onpyo3orpyo3-ffito pull information via env vars propagated by cargo.I suspect that this will make integration of pyo3 with e.g.
meson-pythonsignificantly easier, see e.g. mesonbuild/meson-python#721 (comment)I also hope that it will enable faster CI;
pyo3-build-configitself should now never need to rebuild when switching between abi3 / non-abi3.